/*********************************************************************************
 *      Copyright:  (C) 2020 makun<1394987689@qq.com>
 *                  All rights reserved.
 *
 *       Filename:  tail_lnode.c
 *    Description:  This file 
 *                 
 *        Version:  1.0.0(2020年03月23日)
 *         Author:  makun <1394987689@qq.com>
 *      ChangeLog:  1, Release initial version on "2020年03月23日 02时30分42秒"
 *                 
 ********************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct lnode
{
    int  data;
    struct  lnode *next;
}lnode;



int main (int argc, char **argv)
{
    lnode       *hand=NULL;//定义一个头指针
    lnode       *new_lnode;//定义一个新节点的指针，用来指向malloc分配的地址
    int i;
    lnode       *tail=NULL;

    lnode       *node;//定义一个新的指针，指向头节点的
    node=(lnode *) malloc(sizeof(lnode));
    memset(node,0 ,sizeof(lnode)); 
    node->next=NULL;
    tail=hand=node;//hand指向头结点，因此此时头节点就是终端节点

    for(i=0; i<10; i++)//循环申请10个节点来存放数字1~10
    {
        new_lnode = (lnode *)malloc(sizeof(lnode));//new_lnode指向新申请的节点
        memset(new_lnode, 0, sizeof(lnode));//对新申请的节点进行内存清0
        new_lnode->next=NULL;//将节点的next域清0，这句可以省略
        new_lnode->data=i+1;//对节点data域赋值
    
        tail->next=new_lnode;//用tail来指向新的节点
        tail=tail->next;//tail指向终端节点

    }
    lnode  *search=NULL;//定义一个新的指针，来遍历链表
    for(search=node;search!=NULL;search=search->next)//最后遍历的结果为0~1，因为头节点的data为0
    {
        printf("printf lnode %d\n", search->data);
    }

    return 0;

} 


